const { request } = getApp()

Page({
    enterList:function(){
        
    },
    /**
     * 页面的初始数据
     */
    data: {
        banners:[],
        cates:[],
        items:[],
        page:1,
        pageSize:5,
        isBottom:false
    },
    // 请求banner
    fetchBanner(){
        request({
            url: '/banner/list'
        }).then(res=>{
            if(res.data.code === 0){
                this.setData({
                    banners:res.data.data
                })
            }
        })
    },
    // 请求宫格图标
    fetchCate(){
        request({
            url: '/shop/goods/category/all'
        }).then(res=>{
            if(res.data.code === 0){
                this.setData({
                    cates:res.data.data
                })
            }
        })
    },
    // 请求商品列表
    fetchItems(){
        request({
        url:'/shop/goods/list/v2',
        method:'POST',
        data:{
            categoryId:72399,
            page:this.data.page,
            pageSize:this.data.pageSize
          }
        }).then(res=>{
            if(res.data.code === 700){
                // code码为700的时候结束请求
                this.setData({
                    isBottom:true
                })
            }

            if(res.data.code === 0){
                // 请求的下一页数据 和 之前的数据要一起显示
                // 所以要将数据拼接在一起
                this.setData({
                  items:[
                    ...this.data.items,
                    ...res.data.data.result
                  ]
                })
            }
        })
    },
    // 进入详情函数
    enterDeetail(e){
        // 传参并跳转 至详情页
        const {id} = e.currentTarget.dataset;
        // console.log(id);
        wx.navigateTo({
            url: `/pages/detail/detail?id=${id}`,
          })
    },
    onLoad: function (options) {
        this.fetchBanner()
        this.fetchCate()
        this.fetchItems()
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    // 下拉刷新
    onPullDownRefresh: function () {
        //1.在下拉时 重新请求数据即可
        // 2.当下拉刷新遇到上拉加载时
        // 如果已经触底后 再下拉刷新 此时数据不会分页 会全部显示
        // 所以在下拉请求前应该将请求数据都变为初始值
        this.setData({
            page:0,
            items:[],
            isBottom:false
        }) 
        this.fetchItems()
    },

    // 上拉加载
    onReachBottom: function () {
        // 上拉加载 默认距离底部50px触发
        // 上拉刷新就相当于分页 定义一页5条数据 触底时请求下一页数据
        // 因为请求来的数据在一起 所以 赋值时应该做合并操作
        // 接口请求定义了参数 page 和 pageSize
        // 触底时 将当前页码++后 再次请求数据
        // 当为 最后一页时 也要停止发送请求
        if(this.data.isBottom){
            return
        }
        this.setData({
            page:++this.data.page
        })
        this.fetchItems()
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {
        return {
         "title":"分享美好"   
        }
    }
})